package com.hundsun.documentripper.service;

import com.hundsun.documentripper.domain.dto.DemoSource;
import com.hundsun.documentripper.domain.dto.FileNodeView;
import com.hundsun.documentripper.domain.dto.FileSource;
import com.hundsun.documentripper.domain.pojo.Demo;
import com.hundsun.documentripper.domain.pojo.DemoNode;
import com.hundsun.documentripper.domain.pojo.File;
import com.hundsun.documentripper.domain.pojo.FileNode;
import com.hundsun.documentripper.domain.pojo.FileNodeHistory;

import java.util.List;

/**
 * Note：
 *
 * @author ：mengjw
 * @description：文件节点接口
 * @date ：Created in 2021/1/28
 */
public interface FileNodeService {

    /**
     * 根据文件编号获取文件节点列表
     *
     * @param fileUuid
     * @return
     */
    List<FileNode> getFileNodeListById(String fileUuid);

    /**
     * 根据文件编号获取历史文件节点列表
     *
     * @param fileUuid
     * @return
     */
    List<FileNodeHistory> getFileNodeHistoryListById(String fileUuid);

    /**
     * 根据文件编号删除文件节点
     *
     * @param fileUuid
     * @return
     */
    void deleteFileNodeById(String fileUuid);

    /**
     * 根据文件编号删除历史文件节点
     *
     * @param fileUuid
     * @return
     */
    void deleteFileNodeHistoryById(String fileUuid);

    /**
     * 保存文件节点列表
     *
     * @param file
     * @param fileNodeList
     * @param isLast
     * @return
     */
    void saveFileNodeList(File file, List<FileNode> fileNodeList, boolean isLast);

    /**
     * 获取依赖的节点模板列表和内容列表
     *
     * @param fileSource
     * @param fileNodeList
     */
    void getNodeTemplateViewsAndNodeContents(FileSource fileSource, List<FileNode> fileNodeList);

    /**
     * 获取依赖的节点模板列表和内容列表
     *
     * @param demoSource
     * @param demoNodeList
     */
    void getNodeTemplateViewsAndNodeContents(DemoSource demoSource, List<DemoNode> demoNodeList);
}